package cn.lxb.web.starter.template.constant;

/**
 * 时间格式类型
 *
 * @author 54lxb
 * @since 2019-11-20
 *
 */
public enum Formats implements Format {

    /**
     * 年月格式 "yyyy-MM"
     */
    YEAR_MONTH("yyyy-MM"),

    /**
     * 简单日期格式 "yyyy-MM-dd"
     */
    SIMPLE_DATE("yyyy-MM-dd"),

    /**
     * 简单日期时间格式 "yyyy-MM-dd HH:mm"
     */
    SIMPLE_DATETIME("yyyy-MM-dd HH:mm"),

    /**
     * 标准日期格式 "yyyy-MM-dd HH:mm:ss"
     */
    STANDARD_DATE("yyyy-MM-dd HH:mm:ss"),

    /**
     * 全日期格式 "yyyy-MM-dd HH:mm:ss.SSS"
     */
    ALL_DATE("yyyy-MM-dd HH:mm:ss.SSS"),

    /**
     * 简单时间格式 "HH:mm"
     */
    SIMPLE_TIME("HH:mm"),

    /**
     * 标准时间格式 "HH:mm:ss"
     */
    STANDARD_TIME("HH:mm:ss"),

    /**
     * 全时间格式 "HH:mm:ss.SSS"
     */
    ALL_TIME("HH:mm:ss.SSS");

    /**
     * 时间格式内容
     */
    public final String format;

    /**
     * 时间格式内容长度
     */
    public final int length;

    Formats(String format) {
        this.format = format;
        length = format.length();
    }

    @Override
    public String getFormat() {
        return format;
    }

    @Override
    public int getLength() {
        return length;
    }

    @Override
    public String toString() {
        return format;
    }
}
